package cn.mw.cmdb.service;

import cn.mw.cmdb.entity.AssetsInterfaceDTO;
import cn.mw.cmdb.entity.InstanceInfo;
import cn.mw.cmdb.entity.InstanceInfoExtend;
import cn.mw.cmdb.param.AssetsScanFailParam;
import cn.mw.cmdb.param.AssetsScanParam;
import cn.mw.cmdb.param.MwAssetsInterfaceParam;
import cn.mw.cmdb.processor.MonitorValue;
import cn.mw.components.mongodb.entity.SearchParam;
import cn.mw.microMonitorCommon.api.scan.ScanResult;
import cn.mw.microMonitorCommon.entity.cmdb.AssetsInterfaceView;

import java.util.List;
import java.util.Map;

public interface AssetsManageService {
    ScanResult assetScan(AssetsScanParam scanParam) throws Exception;

    void addMonitor(MonitorValue monitorValue) throws Exception;

    void batchAddMonitor(List<? extends MonitorValue> monitorValueList) throws Exception;

    void delMonitor(MonitorValue monitorValue) throws Exception;

    Object failAssetsScan(AssetsScanFailParam param) throws Exception;

    void refreshAssetsIfInfo() throws Exception;

    void refreshAssetsIfInfoByInstanceId(String instanceId) throws Exception;

    List<AssetsInterfaceView> getAssetsInterface(List<String> instanceIds) throws Exception;

    Object getAssetAllInterfaceByPage(SearchParam param) throws Exception;

    Object getAssetShowInterfaceByPage(SearchParam param) throws Exception;

    boolean editInterfaceFlag(MwAssetsInterfaceParam param) throws Exception;

    void editInterfaceDesc(AssetsInterfaceDTO param) throws Exception;
    void deleteInterfaceInfo(MwAssetsInterfaceParam param) throws Exception;
    Map<String, Integer> getAssetInterfaceStatusCount(SearchParam param) throws Exception;

    void initInterfaceSettingFlag() throws Exception;

    List<InstanceInfoExtend> doSelectInstanceList(Map param) throws Exception;
}
